草庐IT

c++ - Swig -includeall 除了...

全部标签

java - 编译器在运行前将 Java 字节码转换为独立于平台的 C 代码?

我正在寻找一种编译器,用于在运行前(提前编译)将Java字节码转换为独立于平台的C代码。然后我应该能够使用标准C编译器将C代码编译为目标平台的可执行文件。我了解此方法仅适用于某些不经常修改的Java应用程序。那么有哪些Java-to-C编译器可用? 最佳答案 我可以推荐一个名为JCGO的工具这是C翻译器的Java源代码。如果你需要转换字节码,那么你可以通过一些工具(例如,JadRetro+Jad)反编译类文件并将源文件传递给JCGO。该工具一次翻译您的java程序的所有类并生成C文件(每个类一个.c和.h),这些文件可以进一步编译(

java - 选择哪种数据类型或数据结构来计算 100 的阶乘?

我想写一个程序来评估给定整数的阶乘。根据基础知识,我用java编写了以下代码:longfact(intnum){if(num==1)return1;elsereturnnum*fact(num-1);}但后来我意识到,对于许多整数输入,结果可能不是期望的结果,因此为了测试直接给输入100。我的怀疑是真的,因为我得到的结果是“0”(因为结果可能超出了long的范围)。所以,我只是很好奇,也很想知道如何让我的程序处理输入如果有任何有效的C编程语言或Java解决方案,我将不胜感激。 最佳答案 BigInteger是您的类(class)。它

以逗号结尾的Java数组初始化列表

数组初始化列表中使用的逗号,项目分隔符可能会结束C中的列表,这在TheCProgrammingLanguage2ndedbyKernighan&Ritchie中提到。例如intc[]={1,2,3,};当列表很长并且不想在添加项目时更改/检查前一行时这很方便longlongc[]={22342342344,4324234234,12312311111,};但是在Java中我可以观察到两种不同的行为:在Eclipse中,结尾的,被接受,而某些版本的maven编译器插件会提示并抛出编译错误。但是,我没有在Flanagan的Java书中找到任何关于这种奇点的内容。关于初始化项后结束逗号的官方

java - java中unsigned long的等价物是什么

我为我的项目编写了以下三个函数:WORDshuffling(WORDx){//WORD-4bytes-32bits//giveninput-a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15-b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15//outputrequired-a0,b0,a1,b1,a2,b2,a3,b3,a4,b4,a5,b5,a6,b6,a7,b7-a8,b8,a9,b9,a10,b10,a11,b11,a12,b12,a13,b13,a14,b14,a1

java - 通过重构简化代码

是否有重构工具,无论是C语言还是Java语言,都可以简化这种冗余代码。我相信这称为数据传播。这本质上就是优化编译器会做的事情。publicintfoo(){inta=3;intb=4;intc=a+b;intd=c;System.out.println(c);returnc;}进入publicintfoo(){intc=7;System.out.println(c);returnc;} 最佳答案 我认为这不是一个好主意。例如下面的代码:longhours=5;longtimeInMillis=hours*60*1000;这比只是:l

java - 这个错误是不是由在 32 位 JVM 中运行的 Java 程序访问 64 位库引起的?

我正在尝试创建一个简单的Java应用程序,它使用JNI调用一些native函数。我遵循了JNI编程指南中的示例,但似乎无法让它们工作。我有以下用Java编写的HelloWorld程序:classHelloWorld{privatenativevoidprint();publicstaticvoidmain(String[]args){newHelloWorld().print();}static{System.load("/home/mike/Desktop/libHelloWorld.so");}}我使用javacHelloWorld.java编译它,就像平常一样。我在HelloWo

java - 如何在没有 Valgrind 错误的情况下调用 JNI_CreateJavaVM?

在valgrind下编译和运行以下代码时,我一直收到“Invalidwriteofsize4”错误。有没有一种调用JNI_CreateJavaVM()的简洁方法,这样valgrind就不会出错?#include#include#includeintmain(){JavaVMInitArgs*vm_args=calloc(1,sizeof(JavaVMInitArgs));JavaVM*jvm=NULL;JNIEnv*env=NULL;vm_args->version=JNI_VERSION_1_6;vm_args->nOptions=0;vm_args->options=NULL;JN

java - 所有 fx 构建器都已弃用……除了 .adapter 中的一堆?

从不喜欢构建器(也很少使用它们),所以对decisiontodeprecatethem并不过分不满在jdk8中-但有一个包没有弃用它们,实际上是唯一实例化其产品的方法:javaBean属性的适配器-错误或功能?问题:它们是否也会在最终版本中被弃用?如果不是,是否有任何理由可以安全使用它们,即不破坏二进制兼容性? 最佳答案 适配器构建器与“场景图形对象”构建器分开。它们不子类化NodeBuilder(与场景相关的所有其他对象构建器的父级)。整个问题的出现是因为OpenJFX团队决定使用泛型为Node的所有子类实现构建器(为了节省字节代

java - 用 C 和 Java 解决数字难题

这个问题是我从另一个论坛翻译成英文的,我觉得很有趣,然后就写了一个Java解决方案。并发现在处理像10000000这样的大数字时存在一些堆大小问题。与我自己的解决方案相比,我想寻求一些真正聪明的解决方案。原帖为中文。我根据自己的理解对它进行了一些修改,使其更清晰。http://zhidao.baidu.com/question/1637660984282265740.html?sort=6&old=1#here下面是拼图:10000rowsofnumbers;1row:2,4,6,8...2K(2K这就是接下来部分要用到的所有行。现在我们将计算从第1行和第2行开始的数字的重复次数:整数

java - 除了 java.lang.Compiler 之外,有没有办法手动触发 JIT

我正在尝试基于方法结构和分析信息(由JVM提供)构建JIT策略,但我无法手动触发JIT。Thisdocumentation说我可以通过调用java.lang.Compiler.compileClass()来运行JIT,但是方法每次都返回false并且java.lang.Compiler检查的属性(java.compiler)每次我运行JVM时都是空的。我在OpenJDK和OracleJVM1.7上试过,结果都一样。但是当我用观察编译统计数据时$jstat-printcompilation我可以看到JIT成功编译了一些符合条件的方法。如果存在任何方式,我宁愿从Java代码中触发它。我试图